#include<iostream>
using namespace std;
typedef struct TNode
{
    char data;
    struct TNode *lchild,*rchild;
} TNode,*Tree;
int post[35],mid[35],k=0,pre[35];

void create(int post[],int mid[],int n){
	if(n>0){
		int temp=post[n-1];
		pre[k++]=temp;
		int index=0;
		while(index<n){
			if(mid[index]==temp)
				break;
				index++;
			
		}
		create(post,mid,index);
	    create(post+index,mid+1+index,n-index-1);
	}
		
}
int main(){
	int n,i;
	cin>>n;
	for(i=0;i<n;i++){
		cin>>post[i]; 
	}
		for(i=0;i<n;i++){
		cin>>mid[i]; 
	}
	create(post,mid,n);
	cout<<"Preorder:";
	for(i=0;i<n;i++){
		cout<<" "<<pre[i];
	}
	}
